package com.haipumi.ThreadPool;

import java.io.File;
import java.util.*;

public class ThreadPoolManager {
	private int maxThread; // 线程的最大数量
	public Vector vector; // Vector 类可以实现可增长的对象数组。默认大小为10

	public void setMaxThread(int threadCount)// 设置线程的最大数量
	{
		this.maxThread = threadCount;
	}

	public ThreadPoolManager(int threadCount)// 线程管理的构造方法,参数是线程最大数
	{
		this.setMaxThread(threadCount);// 设置线程最大数

		// System.out.println("线程池开始。。。。。");

		vector = new Vector();
		for (int i = 1; i <= threadCount; i++)// 创建线程
		{
			SimpleThread thread = new SimpleThread(i);
			vector.addElement(thread); // 将指定的组件添加到此向量的末尾，将其大小增加 1。
			thread.start();
		}
	}
	
	public void process( List<File> file,List<String> fileFileName)// 处理的方法
	{
		int i;
		for (i = 0; i < vector.size(); i++) {
			SimpleThread currentThread = (SimpleThread) vector.elementAt(i); // 返回指定索引处的组件。
			if (!currentThread.isRunning()) {
				// TODO 逻辑处理的地方
				// System.out.println("Thread "+(i+1)+"开始执行："+argument);
				currentThread.setFile(file);// 给线程传递参数
				currentThread.setFileFileName(fileFileName);
				
				currentThread.setRunning(true);// 线程开始运行
				break;
			}
		}
		if ( i == vector.size()) {
			// 重新分配5个线程
			ThreadPoolManager manager = new ThreadPoolManager(5);
			// System.out.println("重新分配5个线程！");
		}
	}
}
